﻿Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

<Serializable()> _
  Public MustInherit Class Entity
  Private _Id As Guid
  Public Overridable Property Id() As Guid
    Get
      Return _Id
    End Get
    Set(ByVal value As Guid)
      _Id = value
    End Set
  End Property
End Class

Public Class Asset
  Inherits Entity

  Private _AccountName As String
  Public Overridable Property AccountName() As String
    Get
      Return _AccountName
    End Get
    Set(ByVal value As String)
      _AccountName = value
    End Set
  End Property

  Private _AccountBalance As System.Nullable(Of Decimal)
  Public Overridable Property AccountBalance() As System.Nullable(Of Decimal)
    Get
      Return _AccountBalance
    End Get
    Set(ByVal value As System.Nullable(Of Decimal))
      _AccountBalance = value
    End Set
  End Property
End Class

Public Class Borrower
  Inherits Entity

  Private _FirstName As String
  Public Overridable Property FirstName() As String
    Get
      Return _FirstName
    End Get
    Set(ByVal value As String)
      _FirstName = value
    End Set
  End Property

  Private _LastName As String
  Public Overridable Property LastName() As String
    Get
      Return _LastName
    End Get
    Set(ByVal value As String)
      _LastName = value
    End Set
  End Property

  Private _Assets As IList(Of Asset)
  Public Overridable Property Assets() As IList(Of Asset)
    Get
      Return _Assets
    End Get
    Set(ByVal value As IList(Of Asset))
      _Assets = value
    End Set
  End Property

  Public Sub New()
    Assets = New List(Of Asset)()
  End Sub
End Class
